package org.nifi.processors.config;

import lombok.Getter;

import java.util.StringJoiner;

/**
 * 0 成功
 * 201 成功 数据验证存在问题【仅实时数据验证】（会生成数据工单）
 * 1001 返回对象为空
 * 4001 请求失败 请求失败
 * 4002 请求失败 Token错误
 * 4003 请求失败 参数错误。token、data、timestamp、sign有缺失
 * 4004 请求失败 请求失效（timestamp超时）
 * 5001 系统错误 数据格式错误
 * 5002 系统错误 数据缺失
 * 5003 系统错误 服务器错误
 */
@Getter
public class DataAccessException extends RuntimeException {

    private final Integer code;
    private final String msg;

    public DataAccessException(Integer code, String msg) {
        super(msg);
        this.code = code;
        this.msg = msg;
    }

    public DataAccessException(Integer code, String msg, Throwable cause) {
        super(msg, cause);
        this.code = code;
        this.msg = msg;
    }

    @Override
    public String toString() {
        return new StringJoiner(", ", DataAccessException.class.getSimpleName() + "[", "]  ")
                .add("code=" + code)
                .add("msg='" + msg + "'")
                .toString();
    }
}
